package com.ruoyi.finance.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 销项发票对象 incoming_invoice
 *
 * @author ruoyi
 * @date 2025-03-04
 */
public class IncomingInvoice extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 序号 */
    private Long id;

    /** 发票种类 */
    @Excel(name = "发票种类")
    private Integer invoiceType;

    /** 开票日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date invoiceDate;

    /** 发票代码 */
    private String invoiceDaima;

    /** 发票号码 */
    @Excel(name = "发票号码")
    private String invoiceNumber;

    /** 是否作废 */
    private Long voidOrNot;

    /** 纳税人识别号 */
    private String ratepayerNum;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String invoiceNamed;

    /** 地址 */
    private String invoiceAddress;

    /** 电话 */
    private String invoicePhone;

    /** 账号 */
    private Integer accountNumber;

    /** 车架号 */
    private Long frameNum;

    /** 机器编号 */
    private Long machineNum;

    /** 主管机构代码 */
    private String taxAuthority;

    /** 供应商名称 */
    private String supplierName;

    /** 业务类型 */
    @Excel(name = "业务类型")
    private Long businessType;

    /** 合计金额 */
    @Excel(name = "合计金额")
    private BigDecimal totalAmount;

    /** 开户行 */
    private String bankOfDeposit;

    /** 税率 */
    @Excel(name = "税率")
    private BigDecimal taxRate;

    /** 合计税额 */
    @Excel(name = "合计税额")
    private BigDecimal totalTax;

    /** 价税合计 */
    @Excel(name = "价税合计")
    private BigDecimal totalAmountWithTax;

    /** 全电发票号码 */
    private String allElectric;

    /** 认证状态 */
    @Excel(name = "认证状态")
    private Integer verificationStatus;

    /** 认证日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "认证日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date verificationDate;

    /** 关联凭证 */
    @Excel(name = "关联凭证")
    private Long associatedVoucher;

    /** 备注 */
    private String invoiceRemark;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setInvoiceType(Integer invoiceType)
    {
        this.invoiceType = invoiceType;
    }

    public Integer getInvoiceType()
    {
        return invoiceType;
    }
    public void setInvoiceDate(Date invoiceDate)
    {
        this.invoiceDate = invoiceDate;
    }

    public Date getInvoiceDate()
    {
        return invoiceDate;
    }
    public void setInvoiceDaima(String invoiceDaima)
    {
        this.invoiceDaima = invoiceDaima;
    }

    public String getInvoiceDaima()
    {
        return invoiceDaima;
    }
    public void setInvoiceNumber(String invoiceNumber)
    {
        this.invoiceNumber = invoiceNumber;
    }

    public String getInvoiceNumber()
    {
        return invoiceNumber;
    }
    public void setVoidOrNot(Long voidOrNot)
    {
        this.voidOrNot = voidOrNot;
    }

    public Long getVoidOrNot()
    {
        return voidOrNot;
    }
    public void setRatepayerNum(String ratepayerNum)
    {
        this.ratepayerNum = ratepayerNum;
    }

    public String getRatepayerNum()
    {
        return ratepayerNum;
    }
    public void setInvoiceNamed(String invoiceNamed)
    {
        this.invoiceNamed = invoiceNamed;
    }

    public String getInvoiceNamed()
    {
        return invoiceNamed;
    }
    public void setInvoiceAddress(String invoiceAddress)
    {
        this.invoiceAddress = invoiceAddress;
    }

    public String getInvoiceAddress()
    {
        return invoiceAddress;
    }
    public void setInvoicePhone(String invoicePhone)
    {
        this.invoicePhone = invoicePhone;
    }

    public String getInvoicePhone()
    {
        return invoicePhone;
    }
    public void setAccountNumber(Integer accountNumber)
    {
        this.accountNumber = accountNumber;
    }

    public Integer getAccountNumber()
    {
        return accountNumber;
    }
    public void setFrameNum(Long frameNum)
    {
        this.frameNum = frameNum;
    }

    public Long getFrameNum()
    {
        return frameNum;
    }
    public void setMachineNum(Long machineNum)
    {
        this.machineNum = machineNum;
    }

    public Long getMachineNum()
    {
        return machineNum;
    }
    public void setTaxAuthority(String taxAuthority)
    {
        this.taxAuthority = taxAuthority;
    }

    public String getTaxAuthority()
    {
        return taxAuthority;
    }
    public void setSupplierName(String supplierName)
    {
        this.supplierName = supplierName;
    }

    public String getSupplierName()
    {
        return supplierName;
    }
    public void setBusinessType(Long businessType)
    {
        this.businessType = businessType;
    }

    public Long getBusinessType()
    {
        return businessType;
    }
    public void setTotalAmount(BigDecimal totalAmount)
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount()
    {
        return totalAmount;
    }
    public void setBankOfDeposit(String bankOfDeposit)
    {
        this.bankOfDeposit = bankOfDeposit;
    }

    public String getBankOfDeposit()
    {
        return bankOfDeposit;
    }
    public void setTaxRate(BigDecimal taxRate)
    {
        this.taxRate = taxRate;
    }

    public BigDecimal getTaxRate()
    {
        return taxRate;
    }
    public void setTotalTax(BigDecimal totalTax)
    {
        this.totalTax = totalTax;
    }

    public BigDecimal getTotalTax()
    {
        return totalTax;
    }
    public void setTotalAmountWithTax(BigDecimal totalAmountWithTax)
    {
        this.totalAmountWithTax = totalAmountWithTax;
    }

    public BigDecimal getTotalAmountWithTax()
    {
        return totalAmountWithTax;
    }
    public void setAllElectric(String allElectric)
    {
        this.allElectric = allElectric;
    }

    public String getAllElectric()
    {
        return allElectric;
    }
    public void setVerificationStatus(Integer verificationStatus)
    {
        this.verificationStatus = verificationStatus;
    }

    public Integer getVerificationStatus()
    {
        return verificationStatus;
    }
    public void setVerificationDate(Date verificationDate)
    {
        this.verificationDate = verificationDate;
    }

    public Date getVerificationDate()
    {
        return verificationDate;
    }
    public void setAssociatedVoucher(Long associatedVoucher)
    {
        this.associatedVoucher = associatedVoucher;
    }

    public Long getAssociatedVoucher()
    {
        return associatedVoucher;
    }
    public void setInvoiceRemark(String invoiceRemark)
    {
        this.invoiceRemark = invoiceRemark;
    }

    public String getInvoiceRemark()
    {
        return invoiceRemark;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("invoiceType", getInvoiceType())
            .append("invoiceDate", getInvoiceDate())
            .append("invoiceDaima", getInvoiceDaima())
            .append("invoiceNumber", getInvoiceNumber())
            .append("voidOrNot", getVoidOrNot())
            .append("ratepayerNum", getRatepayerNum())
            .append("invoiceNamed", getInvoiceNamed())
            .append("invoiceAddress", getInvoiceAddress())
            .append("invoicePhone", getInvoicePhone())
            .append("accountNumber", getAccountNumber())
            .append("frameNum", getFrameNum())
            .append("machineNum", getMachineNum())
            .append("taxAuthority", getTaxAuthority())
            .append("supplierName", getSupplierName())
            .append("businessType", getBusinessType())
            .append("totalAmount", getTotalAmount())
            .append("bankOfDeposit", getBankOfDeposit())
            .append("taxRate", getTaxRate())
            .append("totalTax", getTotalTax())
            .append("totalAmountWithTax", getTotalAmountWithTax())
            .append("allElectric", getAllElectric())
            .append("verificationStatus", getVerificationStatus())
            .append("verificationDate", getVerificationDate())
            .append("associatedVoucher", getAssociatedVoucher())
            .append("invoiceRemark", getInvoiceRemark())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .append("updateTime", getUpdateTime())
            .append("updateBy", getUpdateBy())
            .toString();
    }
}
